home *** CD-ROM | disk | FTP | other *** search
- unit uWebPoolTest;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, HTTPApp, IBDatabasePool, DBWeb, IBDatabase,
- IBQuery, DB;
-
- type
- TWebModule1 = class(TWebModule)
- pgSales: TPageProducer;
- tpSales: TDataSetTableProducer;
- procedure WebModule1actSalesAction(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- procedure pgSalesHTMLTag(Sender: TObject; Tag: TTag;
- const TagString: String; TagParams: TStrings;
- var ReplaceText: String);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- WebModule1: TWebModule1;
- DBPool : TIBDatabasePool;
- DBQueue : TIBQueryQueue;
-
- implementation
-
- {$R *.DFM}
-
- function DLLFilePath : string;
- begin
- SetLength(Result,MAX_PATH);
- GetModuleFileName(HInstance,PCHar(Result),MAX_PATH);
- SetLength(Result,StrLen(PChar(Result)));
-
- Result := ExtractFilePath(Result);
- end;
-
- procedure TWebModule1.WebModule1actSalesAction(Sender: TObject;
- Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
- var
- s : string;
- begin
- try
- s := 'Select * from SALES';
- if Request.QueryFields.Values['Emp']<>'' then
- s := s + ' where SALES_REP='+Request.QueryFields.Values['Emp'];
- tpSales.Dataset := DBQueue.OpenSQL(s,True);
- try
- Response.Content := pgSales.Content;
- finally
- DBQueue.CloseSQL(TIBQuery(tpSales.Dataset));
- end;
- except
- on e: exception do
- Response.Content := e.message;
- end;
- end;
-
- procedure TWebModule1.pgSalesHTMLTag(Sender: TObject; Tag: TTag;
- const TagString: String; TagParams: TStrings; var ReplaceText: String);
- begin
- if Uppercase(TagString)='TABLEHERE' then
- begin
- ReplaceText := tpSales.Content;
- end;
- end;
-
- initialization
- DBPool := TIBDatabasePool.Create(nil);
- DBQueue := TIBQueryQueue.Create(DBPool);
- DBQueue.IBDatabasePool := DBPool;
- with TStringList.Create do
- try
- LoadFromFile(DLLFilePath+'WebConfig.ini');
- DBPool.MaxConnections := StrToIntDef(Values['MaxDB'],5);
- DBPool.DatabaseName := Values['DBPath'];
- DBPool.Params.Values['USER_NAME'] := Values['Username'];
- DBPool.Params.Values['PASSWORD'] := Values['Password'];
- DBQueue.MaxQueueFactor := StrToIntDef(Values['QueueFactor'],3);
- DBQueue.QueueManagers := StrToIntDef(Values['QueueMgrs'],1);
- finally
- free;
- end;
- DBPool.OpenAll;
-
- finalization
- DBPool.CloseAll;
- DBPool.Free;
-
- end.
-